/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import java.util.*;
import persistencia.PersistenciaAlquiler;
import persistencia.PersistenciaArticulo;
/**
 *
 * @author JAVA
 */
public class Alquiler {
    private Cliente cli;
    
    private Articulo articulo;
    private List<ArticuloAlquilado> listArt;  
    

    public Alquiler(Cliente cliente) {
        this.cli=cliente;
        listArt=new ArrayList<ArticuloAlquilado>();
    }
      
    
    public Alquiler(Cliente cliente,List<ArticuloAlquilado> lista){                    
        this.cli=cliente;
        this.listArt=lista;    
    }

    public Articulo getArticulo() {
        return articulo;
    }

    public void setArticulo(Articulo articulo) {
        this.articulo = articulo;
    }

    public Cliente getCli() {
        return cli;
    }

    public void setCli(Cliente cli) {
        this.cli = cli;
    }



    public List<ArticuloAlquilado> getListArt() {
        return listArt;
    }

    public void setListArt(List<ArticuloAlquilado> listArt) {
        this.listArt = listArt;
    }
       
    
    public void eliminarArticuloAlquilado(ArticuloAlquilado art) throws Exception{
        if(listArt.contains(art)){
            listArt.remove(art);
            PersistenciaArticulo.deseleccionaArticulo(art);
        }
        else{
            throw new Exception("El articulo no se encuentra en el carrito");
        }
    }

    public void addArticuloAlquilado(ArticuloAlquilado art) throws Exception{
        if(!listArt.contains(art)){             
            listArt.add(art);
            PersistenciaArticulo.preseleccionarArticulo(art);           
        }        
        else{
            throw new Exception("El articulo ya se encuentra en el carrito");
        }
    }
    
    public void mostrarArticulosAlquilados(){
        Iterator it=listArt.iterator();
        while(it.hasNext()){
            ArticuloAlquilado aa=(ArticuloAlquilado)it.next();
            System.out.println(aa.toString());
        }
    }
    
    public void confirmarAlquiler(){
        Promocion.comprobarPromociones(listArt);
        PersistenciaAlquiler.crearAlquiler(this);
    }
   
    
    
    public static Alquiler obtenerAlquiler(Cliente c){
        Alquiler alq=new Alquiler(c,PersistenciaAlquiler.obtenerArticulosAlquilados(c));
        return alq;
    }
    
}
